home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 41 / Amiga Format CD41 (1999-06)(Future Publishing)(GB)[!][issue 1999-07].iso / -readerstuff- / chris_seward / data / ur5 < prev    next >
Text File  |  1999-04-21  |  3KB  |  62 lines

  1.  
  2. {center}
  3. {subhead} GPatch v2.4{def}{p}
  4. Review by Renne Nissinen
  5. {left}
  6. {p} {p}
  7.  
  8. GPatch is a patch system for making program (or any kind of) updates smaller.
  9. E.g. if you have made a program and copied it to people, and then you make a
  10. tiny bugfix, the program files usually aren't very different. Same thing with
  11. versions of the same program for different CPUs. Now, if you just copy the
  12. bugfix to people or pack both versions (such as 68000 and 68020) into the same
  13. archive, it can mean that the users have to download hundreds of kilobytes of
  14. data they already have or data that's in the archive twice.
  15. {p} {p}
  16. This is what patcher programs are designed for. They search for similarities
  17. between two files and create a small patch file that only contains the
  18. differences. Apart from the uses mentioned above, it is also useful if the
  19. author of a bugfix isn't allowed to distribute the original file.
  20. {p} {p}
  21. GPatch is a freeware patch system that can create and apply patch files. It
  22. contains two programs: GCompare, which creates the patch file and GPatch,
  23. which creates the new file from the old file and the patch file (GPatch is
  24. 22 kB so it can easily be included with the patch file). GCompare uses 4
  25. different methods to compare the files, and you can either select just one or
  26. let it use them all (s l o w :) and automatically select the smallest result.
  27. (There's also a "quick" option that naturally produces a bigger patch file.)
  28. You can also include patches for several files in one patch file, and a CRC32
  29. checksum is calculated for all files to prevent using the patch with wrong
  30. files (creating a mangled output file).
  31. {p} {p}
  32. Creating a patch file to update MagicMenu v2.21 (61kB) to v2.25 (63kB) with
  33. GCompare took 10 minutes and 14 seconds with my 50MHz 030, and the resulting
  34. patch file was 29kB (19kB when packed with LHA). Applying the patch file
  35. with GPatch took 22 seconds.
  36. {p} {p}
  37. I also tested it with the RFC 2068 document (HTTP/1.1 protocol docs). The
  38. plain ASCII text version was 344kB and the HTML version (basically the same,
  39. just the URLs turned into hyperlinks and some other small changes) was 351kB.
  40. With the quick mode it took 1 min 32 sec and the patch file was 331kB (!!!),
  41. 121kB when archived. Applying the patch took 31 seconds. But creating a "real"
  42. patch (I selected the generic mode to save time) took 46 minutes and 30 seconds
  43. before it was 50% done! That's when I got back from the Moon and decided to abort.
  44. {p} {p}
  45. The GPatch docs say that it produces the smallest patch files of the available
  46. freeware patchers. Well, I can believe that for some cases, but it really is
  47. painfully slow, and the author says it's already very optimized. But I
  48. compared it with SPatch, the commercial patch system included with SAS/C.
  49. Creating the MagicMenu patch took only 28 secs and the patch was 34kB (20kB
  50. archived), well that's 5kB bigger than the GPatch output but over 20 times
  51. faster to create. And you might be surprised that creating a patch for the
  52. same RFC document took 32 seconds and the resulting patch file was 16kB, and
  53. 5.5kB archived (remember, GPatch's version was 121kB archived :-).
  54. {p} {p}
  55. Short: slower than an old lady at the cash desk, but it works and produces
  56. small patch files (sometimes :-). If you have SPatch, better use it
  57. instead :-)
  58. {p} {p}
  59. {bold}Available from{nobold}: Aminet:util/misc/gpatch.lha
  60. {p} {p}
  61. {bold}Overall{nobold}: 60%
  62.